package com.chuidiang.ejemplos.hibernate_annotations;

import java.util.ArrayList;

//import com.ipartek.formacion.helloworld.bean.Libro;

/**
 * Interfaz para determianr los metodos o funciones que soporta el Libro contra
 * la BBDD.
 * 
 * @author Curso
 * 
 */

public interface IDAOLibro {

	/**
	 * Listado de todos los Libros.
	 * 
	 * @return Un ArrayList de Libro, en caso de no existir libro alguno retorna
	 *         null.
	 */
	ArrayList<LibroHibernate> getAll();

	/**
	 * Alta de un Libro
	 * 
	 * @param libro
	 *            objeto de tipo Libro.
	 * @return <b>id</b> generado para el nuevo Libro, <b>-1</b> en caso de no
	 *         insertarse.
	 */
	int insert(LibroHibernate libro);

	/**
	 * Elimina un libro de la BBDD.
	 * 
	 * @param id
	 *            identificador del Libro.
	 * @return <b>true</b> si se elimina correctamente, <b>false</b> en caso
	 *         contrario.
	 */
	boolean delete(int id);

	/**
	 * Modifica un libro de la BBDD.
	 * 
	 * @param libro
	 *            Libro a modificar
	 * @return <b>true</b> si se modific correctamente, <b>false</b> en caso
	 *         contrario.
	 */
	boolean update(LibroHibernate libro);

	/**
	 * Obtiene un Libro por su Id.
	 * 
	 * @param id
	 *            IDentificador del Libro.
	 * @return Libro encontrado. <b>Null</b> si no se encuentra nada.
	 */
	LibroHibernate getById(int id);

}
